home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 142
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin
/
tools
/
s_tool
/
mousescs.c
< prev
next >
Wrap
Text File
|
1997-08-21
|
7KB
|
222 lines
#if 0
/***************************************
GETWINDOW_DISP(SUB DEVICES)
****************************************/
void GETWINDOW_DISP(id)
int id;
{
UNchar buf[256];
int i;
BUSYS( i=_scsi_getwindow( id,0x4c,buf) );
if ( i!=0 ){
printf("getwindow でエラー(%d)\n",i);
if ( i==2 ) request_disp(id);
return;
}
printf("windowのページ番号 = %d\n",buf[8]);
printf("主走査線の解像度 =%d.%d\n",buf[10]*0x100+buf[11],buf[72]*0x100+buf[73]);
printf("副走査線の解像度 =%d.%d\n",buf[12]*0x100+buf[13],buf[74]*0x100+buf[75]);
printf("主走査線の読取開始位置 =%d\n",*(int*)&buf[14]);
printf("副走査線の読取開始位置 =%d\n",*(int*)&buf[18]);
printf("主走査線の読取幅 =%d\n",*(int*)&buf[22]);
printf("副走査線の読取幅 =%d\n",*(int*)&buf[26]);
printf("濃度補正指定 =%02X\n",buf[30]);
printf("2値の場合の敷居値 = %d\n",buf[31]);
printf("読み取りモード = %d\n",buf[33]);
printf("1dot 当りのビット数 = %d\n",buf[34]);
printf("ハーフトーンパターン = %d\n",buf[35]*0x100+buf[36]);
printf("RIF = %d\n",(buf[37]>>7)&1);
printf("Padding = %d\n",buf[37]&7);
printf("輪郭強調 = %d\n",(buf[48]>>6)&3);
printf("ドロップアウト = %d\n",(buf[48]>>4)&3);
printf("読み取り速度 = %d\n",(buf[48]>>2)&1);
printf("主走査方向読取画素数 = %d\n",buf[49]*0x100+buf[50]);
printf("副走査方向読取画素数 = %d\n",buf[51]*0x100+buf[52]);
printf("色調整 (red) = %04X\n",buf[53]*0x100+buf[54]);
printf("色調整 (green)= %04X\n",buf[55]*0x100+buf[56]);
printf("色調整 (blue) = %04X\n",buf[57]*0x100+buf[58]);
printf("色調整 (b/w) = %04X\n",buf[59]*0x100+buf[60]);
printf("敷居値 (red) = %d\n",buf[63]);
printf("敷居値 (green)= %d\n",buf[64]);
printf("敷居値 (blue) = %d\n",buf[65]);
printf("ドラフトモード = %d\n",(buf[66]>>7)&1);
printf("1line のスキャン単位 = %dμs\n",buf[67]*0x1000000+buf[68]*0x10000+buf[69]*0x100+buf[70]);
printf("ガンマテーブル = %d\n",buf[71]);
}
/***************************************
ModeSense(SUB DEVICES)
****************************************/
void SUBDEVICES_DISP(id)
int id;
{ // Page
UNchar buf[256],buf2[256];
int i,j,m,n,l,x,y,z;
//--------
i=_scsi_modesense( 0x20|SD_CUR,40,id,buf );
if ( i!=0 ){
printf("modeselect でエラー(%d)\n",i);
if ( i==2 ) request_disp(id);
END_DISP();
}
//-------- A-mode,F-mode チェック
if ( (buf[14]&bit(6))==0 && (buf[15]&bit(6))!=0 )
printf("オプション動作モード : FSUモード : 透過原稿読み取りユニットによる読み取り\n");
else if ( (buf[14]&bit(6))!=0 && (buf[15]&bit(6))==0 )
printf("オプション動作モード : ADFモード : 原稿自動送り装置による読み取り\n");
else if ( (buf[14]&bit(6))!=0 && (buf[15]&bit(6))!=0 )
printf("オプション動作モード : 反射モード : オプションを使用しません\n");
else printf("オプション動作モード : ★異常!\n");
//-------- A-ready,F-ready チェック
if ( (buf[14]&bit(7))==0 && (buf[15]&bit(7))==0 )
printf("オプションは動作しません\n");
else if ( (buf[14]&bit(7))==0 && (buf[15]&bit(7))!=0 )
printf("透過原稿読み取りユニットがどうさできる状態\n");
else if ( (buf[14]&bit(7))!=0 && (buf[15]&bit(7))==0 )
printf("原稿自動送り装置が動作出来る\n");
else printf("A-ready,F-ready ★異常!\n");
//------ A-type
i=buf[14]&3;
if ( i==0 )
printf("原稿自動送り装置未接続\n");
elif ( i==1 )
printf("原稿自動送り装置接続\n");
else printf("A-type reserved ★異常!\n");
//------ F-type
i=buf[15]&7;
if ( i==0 )
printf("透過原稿読み取り装置未接続\n");
elif ( i==1 )
printf("Mirrorタイプ\n");
elif ( i==2 )
printf("Lampタイプ\n");
elif ( (i&6)==6 )
printf("F-type reserved ★異常!\n");
else printf("CCD タイプ\n");
//---- Max X-Axis
i=buf[17]*0x1000000+
buf[18]*0x10000+
buf[19]*0x100+
buf[20];
printf("Max X-Axis valid scanning size = %d (%Xh) : X-Axis × 単位 \n",i,i);
//---- Max Y-Axis
i=buf[21]*0x1000000+
buf[22]*0x10000+
buf[23]*0x100+
buf[24];
printf("Max Y-Axis valid scanning size = %d (%Xh) : Y-Axis × 単位 \n",i,i);
//---- Tray Type
switch( (buf[25]&0xC0)/0x40 ){
case(0):printf("Tray Type : サイズ認識機能なし\n");
break;
case(1):printf("Tray Type : 主走査方向のみサイズ認識可能\n");
break;
case(2):printf("Tray Type : 主走査、副走査サイズ認識可能\n");
break;
default:printf("Tray Type : reserved ★異常!\n");
}
//---- 用紙サイズ
{ static UNchar RV[]="reserved ★異常?";
static UNchar *SP[]={
/*00*/ "NONE",
/*01*/ "ダブルレター",
/*02*/ "リガール",
/*03*/ "レター縦",
/*04*/ "インボイス",
/*05*/ RV,
/*06*/ "レターR",
/*07*/ "インボイスR",
/*08*/ RV,
/*09*/ RV,
/*0A*/ RV,
/*0B*/ RV,
/*0C*/ RV,
/*0D*/ RV,
/*0E*/ RV,
/*0F*/ RV,
/*10*/ RV,
/*11*/ "A3",
/*12*/ "B4",
/*13*/ "A4",
/*14*/ "B5",
/*15*/ RV,
/*16*/ "A4R",
/*17*/ "B5R",
/*18*/ RV,
/*19*/ RV,
/*1A*/ RV,
/*1B*/ RV,
/*1C*/ RV,
/*1D*/ RV,
/*1E*/ RV,
/*1F*/ RV,
/*20*/ RV,
/*21*/ "WLT/LTR",
/*22*/ "LG/LT/INV",
/*23*/ "INVR",
/*24*/ RV,
/*27*/ RV,
/*28*/ RV,
/*29*/ "A3/A4R",
/*2A*/ "B4/B5R",
/*2B*/ RV,
/*2C*/ RV,
/*2D*/ RV,
/*2E*/ RV,
/*2F*/ RV
};
i=buf[25]&0x3F;
if ( i<0x2B )
printf("用紙サイズ %s \n",SP[i]);
else printf("用紙サイズ reserved ★異常!\n");
}
//---- Both
if ( (buf[26]&0x80)==0 )
printf("Both : 片面読み取り\n");
else printf("Both : 両面読み取り\n");
//---- ADF
i=(buf[26]/0x10)&0x7;
if ( i==0 )
printf("ADF type : 片面読み取り\n");
else if ( i==1 )
printf("ADF type : 両面読み取り(自動反転)\n");
else if ( i==2 )
printf("ADF type : 両面読み取り(両面同時)\n");
else printf("ADF type : ★異常!\n");
//---- Paper Stack size
i=(buf[26])&0xF;
if ( i==0 )
printf("Paper Stack Size : 手差し\n");
else if ( i==1 )
printf("Paper Stack Size : 50枚\n");
else if ( i==2 )
printf("Paper Stack Size : 100枚\n");
else if ( i==3 )
printf("Paper Stack Size : 200枚\n");
else printf("Paper Stack Size : ★異常?\n");
//---------
printf("主走査(Xaxis)基本解像度 = %d (%Xh) dpi\n",buf[27]*0x100+buf[28],buf[27]*0x100+buf[28]);
printf("副走査(Yaxis)基本解像度 = %d (%Xh) dpi\n",buf[29]*0x100+buf[30],buf[29]*0x100+buf[30]);
printf("主走査(Xaxis)最大解像度 = %d (%Xh) dpi\n",buf[31]*0x100+buf[32],buf[31]*0x100+buf[32]);
printf("副走査(Yaxis)最大解像度 = %d (%Xh) dpi\n",buf[33]*0x100+buf[34],buf[33]*0x100+buf[34]);
printf("主走査(Xaxis)最小解像度 = %d (%Xh) dpi\n",buf[35]*0x100+buf[36],buf[35]*0x100+buf[36]);
printf("副走査(Yaxis)最小解像度 = %d (%Xh) dpi\n",buf[37]*0x100+buf[38],buf[37]*0x100+buf[38]);
}
#endif